At the beginning of each project must be a CMakeList.txt file.
CMakeList.txt is a file that CMake recognizes as a build script file.
A project can have multiple CMakeList.txt, but only one in each directory. For the one in the top level directory of the project, the following must be present at the top of the file:
CMake provides an interface to specify build options and processes, without being concerned with compiler or operating system specific details.
Note: It only covers cross platform functionality for building the project, you are still responsible for the actual source code running on different platforms.